// 修改默认的图标
// treeId 是整个树形结构附着的 ul 标签的 id
// treeNode是当前树形节点的全部的数据，包括从后端查询得到的 Menu 对象的全部属性
function myAddDiyDom(treeId, treeNode) {
    // 根据 id 的生成规则拼接出来 span 标签的 id
    var spanId = treeNode.tId + "_ico";
    //  根据控制图标的 span 标签的 id 找到这个 span 标签
    $("#" + spanId).removeClass().addClass(treeNode.icon);

}

// 在鼠标移入节点范围时添加按钮组
function myAddHoverDom(treeId, treeNode) {

    var btnGroupId = treeNode.tId + "_btnGrp";

    if ($("#" + btnGroupId).length > 0) {
        return;
    }
    var addBtn = "<a id='" + treeNode.id + "' class='addBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0px;' href='#' title='添加子节点'>&nbsp;&nbsp;<i class='fa fa-fw fa-plus rbg '></i></a>";
    var removeBtn = "<a id='" + treeNode.id + "' class='removeBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0px;' href='#' title=' 删 除 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-times rbg '></i></a>";
    var editBtn = "<a id='" + treeNode.id + "' class='editBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0px;' href='#' title=' 修 改 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-edit rbg '></i></a>";

    var level = treeNode.level;
    var btnHTML = "";

    if (level == 0) {
        // 级别为 0 时是根节点，只能添加子节点
        btnHTML = addBtn;
    }

    if (level == 1) {
        // 级别为 1 时是分支节点，可以添加子节点、修改
        btnHTML = addBtn + " " + editBtn;
        // 获取当前节点的子节点数量
        var length = treeNode.children.length;
        // 如果没有子节点，可以删除
        if(length == 0) {
            btnHTML = btnHTML + " " + removeBtn;
        }
    }

    if(level == 2) {
        // 级别为 2 时是叶子节点，可以修改、删除
        btnHTML = editBtn + " " + removeBtn;
    }

    var anchorId = treeNode.tId + "_a";

    $("#"+anchorId).after("<span id='"+btnGroupId+"'>"+btnHTML+"</span>");


}

// 在鼠标离开节点范围时删除按钮组
function myRemoveHoverDom(treeId, treeNode) {

    var btnGroupId = treeNode.tId + "_btnGrp";
    $("#"+btnGroupId).remove();
}

// 生成树形结构的函数
function generateTree() {
    // 准备生成树形结构的 JSON 数据，数据的来源是发送 Ajax 请求得到
    $.ajax({
        url:"menu/get/whole/tree.json",
        type:"post",
        dataType:"json",
        success:function (response) {
            var result = response.result;

            if(result == "SUCCESS"){

                // 创建 JSON 对象用于存储对 zTree 所做的设置
                var setting = {
                    // 引用my-menu.js中的函数
                    view:{
                        addDiyDom: myAddDiyDom,
                        addHoverDom:myAddHoverDom,
                        removeHoverDom: myRemoveHoverDom
                    },
                    data:{
                        key:{
                            url:"shabi"
                        }
                    }
                };

                // 从响应体中获取用来生成树形结构的 JSON 数据
                var zNodes = response.data;

                // 初始化树形结构
                $.fn.zTree.init($("#treeDemo"),setting,zNodes);
            }

            if(result == "FAILED"){
                layer.msg(response.message);
            }
        }
    });
}